package com.duobaoyu.dby.supply.common.biz.bo.message;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author liyang
 * @version 1.0.0
 * @ClassName ChannelMessageBO
 * @Description 渠道消息体
 * @createTime 11:52:00 2023/09/28
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChannelMessageBO implements Serializable {
	private static final long serialVersionUID = 8553862486064075448L;

	/**
	 * 主键消息ID
	 */
	private String channelMessageId;
	/**
	 * 渠道编号
	 */
	private String channelCode;
	/**
	 * 对接渠道配置Key
	 */
	private String configUniqueKey;
	/**
	 * 渠道原消息体(压缩后的)
	 */
	private String originalMessage;
	/**
	 * 唯一key（MD5值）
	 */
	private String uniqueKey;
	/**
	 * 消息类型
	 * //@see com.duobaoyu.dby.channel.adapter.enums.BizMessageTypeEnum
	 */
	private Integer messageType;
	/**
	 * 业务消息体-JSON压缩
	 */
	private String message;
	/**
	 * 是否是批量消息 0->否 1->是
	 */
	private Boolean isBatch;
	/**
	 * 消息重试次数
	 */
	private Integer retryCount;
	/**
	 * 状态 1->待处理；2->处理成功；3->处理失败
	 */
	private Integer status;
	/**
	 * 操作编号，订单编号、商品编号、售后编号
	 */
	private String operationalCode;
	/**
	 * 渠道操作编号，渠道订单编号、渠道商品编号、渠道售后编号
	 */
	private String channelOperationalCode;
	/**
	 * 版本号-用作乐观锁
	 */
	private Integer version;
	/**
	 * 创建时间
	 */
	private LocalDateTime createTime;

	/**
	 * 更新时间
	 */
	private LocalDateTime updateTime;
}
